
class ApiResponseError(Exception):
    """
    自定义接口错误类型
    """

    def __init__(self, *args, extra_msg=None):
        self.extra_msg = extra_msg
        super(ApiResponseError, self).__init__(*args)


class TaskApiStatusMsg(object):
    """
    接口返回状态码/消息
    """
    status_msg = {
        'success': {'code': 10000, 'msg': '请求成功', 'status': 1},
        'processing': {'code': 10002, 'msg': '正在处理中', 'status': 1},
        'uploading': {'code': 10006, 'msg': '正在上传中', 'status': 1},
        'queuing': {'code': 10004, 'msg': '队列中', 'status': 1},

        'handle_error': {'code': 20013, 'msg': '处理任务发生异常', 'status': 0},
        'func_error': {'code': 20015, 'msg': '未知错误', 'status': 0},
        'lack_params': {'code': 20017, 'msg': '缺少参数', 'status': 0},
        'error_params': {'code': 20019, 'msg': '参数错误', 'status': 0},
        'fund_full': {'code': 20019, 'msg': '已筹满', 'status': 0},
    }

    def __init__(self):
        self.__dict__ = self.status_msg


class UserApiStatusMsg(TaskApiStatusMsg):
    """
    接口返回状态码/消息
    """
    status_msg = {
        'success': {'code': 10000, 'msg': '请求成功'},
        'unauthorized': {'code': 30003, 'msg': '您还未认证授权'},
        'login_error': {'code': 30005, 'msg': '登录失败或用户被锁定'},
    }

    def __init__(self):
        super().__init__()
        self.__dict__ = self.status_msg


api_status_msg = TaskApiStatusMsg()
user_api_status_msg = UserApiStatusMsg()